/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.patpro.controladores;


import com.patpro.modelo.javabeans.Profesor;
import com.patpro.modelo.servicios.ProfesorServicio;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

/** 
 
 */
public class ActualizaProfesorController extends SimpleFormController {

    private ProfesorServicio servicio_profesor;

    public ActualizaProfesorController() {
        setCommandClass(Profesor.class);
        setCommandName("profesorBean");
        //setSuccessView("successView");
        //setFormView("formView");
    }

    public ProfesorServicio getServicio_profesor() {
        return servicio_profesor;
    }

    public void setServicio_profesor(ProfesorServicio servicio_profesor) {
        this.servicio_profesor = servicio_profesor;
    }

    @Override
    protected Object formBackingObject(HttpServletRequest request) throws Exception {
        Profesor c = (Profesor) super.formBackingObject(request);
        String id = request.getParameter("id");
        if(id == null)
            c.setDireccionWeb("http://webpersonal.com");
        else{
            c = servicio_profesor.buscarProfesor(Integer.parseInt(id));
        }

        return c;
    }

    @Override
    public Map referenceData(HttpServletRequest request) {
        Map modelo = new HashMap();
        List<Profesor> profesores = servicio_profesor.listarProfesores();
        modelo.put("lista_profesores", profesores);

        String id = request.getParameter("id");
        if(id == null)
            modelo.put("opcion", "Agregar");
        else
            modelo.put("opcion", "Actualizar");
        return modelo;
    }

    @Override
    protected ModelAndView onSubmit(
            HttpServletRequest request,
            HttpServletResponse response,
            Object command,
            BindException errors) throws Exception {
        ModelAndView mv =null;

        Profesor profesor = (Profesor) command;
        int resp = servicio_profesor.actualizarProfesor(profesor);
        if(resp > 0)
            mv = new ModelAndView(getSuccessView());
        else
            mv = new ModelAndView("error");
        mv.addObject("controlador", "adminProfesor");
        return mv;
    }
}
